home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
081
/
xlax_102.arc
/
XLAXNODE.DOC
< prev
next >
Wrap
Text File
|
1988-05-19
|
58KB
|
1,452 lines
XLAXNODE Page 1
XLAXNODE
Express Nodelist Builder
Copyright 1987, 1988
By Scott Samet
Friends of Dorothy 1:135/990
This is a nodelist processor designed to consolidate many of the
nodelist processing functions needed by an FidoNet sysop into a single
FAST program. This version adds support for Opus 1.10, Binkley 1.40
and PC Pursuit 2400 baud service.
Acknowledgements
This program was inspired, in part, by the work done by Thom Henderson
in XLATLIST and Rick Huebner in PCPEXCH. Thanks to Rick for
permission to include his sample PCPEXCH data and script files.
Credit also goes to Mike Janke (135/4) and Chris Baker (135/14 aka
18/0 & 135/0) who put up with all sorts of stupid questions when I
didn't know an Opus from an ice cube. And to the sysops of Net 135,
especially Henry Van Leer (135/27) who tested version 0.0 and used it
anyway! Most of the support for Seadog functions is a result of Chris
Baker and Al de la Torre (135/7) sending netmail messages that started
"Why doesn't it..."
License
The program and associated documentation are Copyright. They are
distributed as SmileWare <probably tm>.
DISTRIBUTION:
You may distribute the program on magnetic media or via modem
provided you observe the following restrictions: You do not add,
delete, change or rename the distribution file or anything in it.
You may not request or accept money, sex, drugs or other
compensation.
USE:
Prior to using this program, seat your mirror shades firmly on
the bridge of your nose, fasten your seat belt, hold up your
right hand and repeat the following: "I, (state your name), do
solemnly swear or affirm that I will use this program in a lawful
and friendly fashion, observe OPOL0.DOC and will never even think
of mentioning controversial subjects such as religion or 9600
baud modems in MEADOW."
DONATION:
Money sent to Scott Samet, PO Box 162082, Miami, FL 33216 USA,
would indicate that user supported software is appreciated.
$20 is suggested, however less is better than nothing. Wives,
lovers, children and livestock are not accepted by the US Postal
Service and UPS cannot deliver to PO Boxes.
XLAXNODE Page 1
XLAXNODE Page 2
Warranty
Nil, naught, none, nunca, nada, nyet. No warranty expressed, implied,
impugned, indulged, imagined or ever considered. Distributed on an
as-is basis. Use at your own risk. Not responsible for incidental,
consequential, transcendental, accidental, real, imagined or any other
damage. Using this program indicates your acceptance of these terms.
On the other hand, I'm proud of the program, and want it to be bug
free. Problem reporting procedures are detailed at the end of this
document.
What does it do?
Produces one or more of the following files:
NODELIST.BBS In Fido, Opus or Seadog format,
NODELIST.FON compatible with XlatList 2.84
NODELIST.SYS For Opus systems,
NODELIST.IDX compatible with
NODELIST.DAT OpusNode 1.4.6 and ParseLst
NODELIST.DOG For Seadog
NETLIST.DOG systems, compatible
INDEX.DOG with NLCOMP 4.16
FIDOUSER.LST Username file
NODELIST.PRN Human-readable nodelist, 132 columns
NODELIST.TXT " " " 80 columns
NODELIST.DBL " " " two 80 column lines/node
COORD.nnn " " Zone, Region and Net nodelist
NODETEXT.BBS Human-readable nodelist, online view format
NODELIST.DLM Delimited nodelist for other<tm> programs
The program will also do the nodelist processing required to support
PC Pursuit scripts for BinkleyTerm and Opus 1.03 and 1.10
XLAXNODE Page 2
XLAXNODE Page 3
OPERATION
There are some differences between this program and the program(s) you
are probably using. You may get an error message or even different
results. Take a time to read the docs and avoid problems.
This version expects ANSI.SYS (or equivalent) to be loaded. When used
under DOS 2.x, the EXE file must reside in the current directory; the
DOS PATH will not suffice. It should work on most "non-IBM-Compatible"
MS-DOS machines.
XLATLIST processes DIAL and COST strings in the order you enter them.
If you have the same string more than once, XLATLIST will ignore the
extra ones. You will now get an error message. You need to figure
out why you have duplicates, and fix your input file. If you have a
shorter string before a longer one, e.g. "1-305" before "1-305-555",
than XLATLIST will never use the longer string. The strings are
sorted and the longest processed first. In the previous example, both
strings will be used. Failure to heed these warnings will result in
different output than you are used to getting.
Many sysops will be able to use their existing XLATLIST.CTL files
unaltered. If you're running XLATLIST in the Opus mode, and following
it with OPUSNODE -f, then you should be able to run XlaxNode with no
switches and you're done. The dummy control file (XLAXNODE.CTL)
included with the program contains an INCLUDE statement to read your
existing XLATLIST.CTL file.
XLAXNODE.CTL is the first file read. This contains control statements
to direct further operation. Unless you override the defaults, it
will search the current directory for files named NODELIST.nnn,
looking for the highest number. That file will be used as the raw
nodelist input file. By default, three files are written:
NODELIST.BBS, which is used by Fido and Seadog systems and some
special purpose utilities, and NODELIST.SYS and NODELIST.IDX which are
the only files actually used by Opus v1.03.
XLAXNODE.CTL is a standard Ascii text file. Each control statement is
entered on a separate line. A semi-colon indicates that the rest of
the line is to be treated as comments. Blank lines or lines starting
with semi-colons are also comments. No line, even a comment line, may
exceed 255 characters in length.
You may augment or override commands in the control file by placing
them on the DOS command line. Commands that require arguments must be
enclosed in Ascii quotes ("). The COST and DIAL commands require
multiple lines and cannot be placed on the DOS command line. For
example, if you are running a temporary modem at 1200 baud, you might
enter:
XLAXNODE "MAXBAUD 1200"
This is the same as including the corresponding statement at the end
of your control file.
XLAXNODE Page 3
XLAXNODE Page 4
If an error occurs during processing, XlaxNode will terminate and
return an error code that can be tested in the batch file. Error
codes and their causes are:
0 Normal completion, no errors.
1 Control file turned off all output files.
5 Not enough memory. Array full or heap overflow.
6 No NODELIST.nnn file found to process.
7 Error in a control statement.
8 Attempt to open a file failed.
9 Sort or Disk I/O Error occured.
COMMANDS
INCLUDE filename
Indicates an auxiliary file containing XlaxNode Control
statements. XlaxNode will read and process the named file, then
continue with the next statement in the current file. Include
files may be nested, subject to DOS limits on the number of files
open.
UPDATE command-string
NOUPDATE
Allows you to invoke a nodelist update program (XlaxDiff, or
equivalent) before processing begins. Command-string is the full
command, including all arguments, just as you would type it at
the DOS prompt. If the program returns an error code greater
than 1, processing will be aborted. Example:
UPDATE XlaxDiff /E=D:\NetFiles /C
NODE <zone>:<net>/<node>
This is REQUIRED. Enter YOUR node number. Example:
NODE 1:234/567
COUNTRY
Here's where you enter the international telephone prefix for
your country. The default is "1-", which is shared by the US,
Canada and some little specks in the Atlantic.
XLAXNODE Page 4
XLAXNODE Page 5
FIDO
SEADOG
OPUS
Pick one. Or don't pick one, if you're willing to accept OPUS as
the default. This controls some quirks in the format and content
of the output files to support the different systems. Most of
the differences have to do with how Zones, Hubs and Flags are
handled.
If you are running Opus and Seadog, then you will need to run the
program once in each mode in order to get all your files. See
the section about entering options on the command line. Be sure
to do the Opus run before the Seadog run, since many Seadog
utilties will run (or attempt to run) NLCOMP if they find that
the NODELIST.BBS file has a later timestamp than the Seadog
nodelist files.
FIDOPRN
FIDOTXT
FIDODBL
NOFIDOLIST
Gives you a people-readable version of the nodelist. FIDOPRN is
132 columns wide. FIDOTXT is 80 columns wide. FIDODBL is 80
columns wide, but uses two lines per node, like the LISTGEN
output file that I am not old enough to remember. You may ask
for any or all, even if you are in OPUS or SEADOG mode. The
default, NOFIDOLIST means you don't want this disk space hog.
See the section on PC Pursuit processing for information on how
the contents of these files are modified for Pursuitable nodes.
Also see SQUEEZE.
INDEX
SINDEX
NOINDEX
Appends an index to the FIDODBL, FIDOPRN and FIDOTXT lists.
SINDEX is sorted by Zone/Region/Net number, INDEX is in the same
order as the lists. NOINDEX is the default. If NOFIDOLIST is
selected, then you can't very well have an index, can you?
SQUEEZE
NOSQUEEZE
Reduces the size of the FIDOLIST files by replacing strings of
blanks with tabs. Reductions of 15-35% are typical, as are
similar increases in execution time. NOSQUEEZE is the default.
You may wish to avoid this option if you are using any kind of
program to read the FIDOLIST files. Some programs are confused
if the input file contains tabs, buttons or suspenders.
XLAXNODE Page 5
XLAXNODE Page 6
NODETEXT [<headerfilename> [<trailerfilename>]]
NONODETEXT
Another people-readable version of the nodelist. This is
formatted for online viewing. There are no page breaks or form
feeds. If headerfilename and trailerfilename are specified, these
files are inserted at the start and end of the generated report.
You can insert a introductory message and/or oANSI control
commands. See the section on PC Pursuit processing for
information on how the contents of this file is modified for
Pursuitable nodes. Also see SQUEEZE.
USERLIST
INTERLIST
NOUSERLIST
Creates an alphabetical directory of sysops and their node
numbers. USERLIST is just for your Zone, INTERLIST is for all
Zones. The default, NOUSERLIST is for the No-Zone.
ADDR
This XLATLIST command has been replaced by the ADDRLIST command.
ADDRLIST filename
This command refers to a personal file of names and node numbers
that will be added to the FidoUser.Lst file. If one of these
names exists in the nodelist, the address specified here will
override the one that would normally be selected.
The file is a standard ASCII text file. Each line has the
following format:
Address_String User_Name_String
Address may be any string up to twenty characters. Seadog allows
non-FidoNet addresses, so the address is not edited. Neither the
address or name field may have any embedded blanks. Example:
1/1 Fido_News
1/1 FidoNews
3:3/0 Zone_Three_Cooord
Palace!EmeraldCity!OZ I_D'Wiz
REPORT
NOREPORT
Generates a cute little report about how many nodes there are,
how many are down, on hold and private. Since the program
doesn't have any limits on the number of nodes, why do you care?
PROGRESS
NOPROGRESS
Displays the input filename, zone, region and net number while
the nodelist is being scanned. Using this option with a speech
board will really slow things down. NOPROGRESS suppresses this
display. PROGRESS is the default.
XLAXNODE Page 6
XLAXNODE Page 7
COMMENTS
NOCOMMENTS
Copies any comments from the raw nodelist the report file as they
are read. You should be aware that error messages from the
nodelist creation utilities are inserted in the nodelist as
comments. All I do is display them when the nodelist is
compiled. I don't create these messages, so please don't write
and ask me to explain them. NOCOMMENTS is the default.
DASH
NODASH
The exciting NODASH option strips the dashes out of phone numbers
written to the NODELIST.BBS, NODELIST.SYS and NODELIST.DAT files.
Some modems get upset if the dial strings are too long, and this
can make them shorter. It also makes them very difficult to
read. DASH is the default. Unlike Other<tm> programs, XlaxNode
still knows if a number is domestic or international, even if the
dashes are removed.
NODELIST
NONODELIST
Writes the NODELIST.BBS file. The contents of this file will
vary based on the Fido/Opus/Seadog switch. This file is not used
by XlaxNode. There is no need to create it unless you are doing
Other<tm> nodelist processing. NONODELIST is the default.
OPUSLIST
NOOPUSLIST
Writes the Opus files NODELIST.IDX and NODELIST.SYS or
NODELIST.DAT. This option is only effective if you're running in
OPUS mode. OPUSLIST is the default.
OPUSOLD
OPUSNEW
Controls the files produced by OPUSLIST. OPUSOLD is the default
and causes the NODELIST.SYS file and Opus 1.03 format
NODELIST.IDX to be written. OPUSNEW causes the NODELIST.DAT file
and Opus 1.10 format NODELIST.IDX to be written.
SEADOGLIST
NOSEADOGLIST
Writes the NODELIST.DOG, NETLIST.DOG and INDEX.DOG files. This
option is only effective if you're running in SEADOG mode, in
which case SEADOGLIST is the default.
COORDLIST
NOCOORDLIST
Creates a file named COORD.nnn, where nnn is the number of the
input nodelist. This is a human readable text file listing the
Zone, Region and Net coordinators.
XLAXNODE Page 7
XLAXNODE Page 8
FRONTDOOR
NOFRONTDOOR
Writes the USERLIST.BBS for FrontDoor. NOFRONTDOOR is the
default.
DELIMITEDFILE
NODELIMITEDFILE
This is a parsed version of the nodelist formatted for loading
into dBASE, Lotus, Reflex or the like. A detailed file
description is given near the end of this document.
MAXBAUD nnnn [flag mmmm]
Tells the maximum speed of your modem. This value will replace
the speed of any faster nodes. Opus and Binkley obtain this
information from their configuration files. The optional
flag mmmm pair specifies a second baud rate to be used if "flag"
appears in the flags field of the nodelist entry. Examples:
MAXBAUD 1200 ; All calls limited to 1200
MAXBAUD 2400 HST 9600 ; Calls to HST at 9600 others at 2400
PUBLIST nodelistname
This allows you to override the standard name, NODELIST, for the
input file. Enter only the 1-8 character file name. Do NOT
enter the period or file type. The program will search for the
highest numbered list. Multiple Public lists are NOT supported.
Use MYLIST or PVTLIST for any additional lists, such as AlterNet
or EggNet.
Nodelistname will also be used for some of the output files. If
you enter:
PUBLIST TESTNODE
Then NODELIST.BBS, .SYS, and .IDX will be named TESTNODE.BBS,
.SYS and .IDX respectively.
XLAXNODE Page 8
XLAXNODE Page 9
MYLIST <filename>...
PVTLIST <filename>...
These two keywords allow you to specify additional nodelists.
Entries from MYLIST files will be included in the human readable
nodelists. PVTLIST file entries will not. By popular demand,
and against my better judgement, FSC002 is relaxed to permit
spaces and tabs in these lists.
The OneZone/AllZones keywords do not affect these nodelists.
Zones selection is ignored and all entries are written to the
output files. They will be merged into the nodelist at the end
of your zone. This means that if the list(s) do not contain zone
statements, they will be included in your zone.
Opus 1.03 and Seadog may have problems if net numbers are
duplicated. The OZone keyword may be used to adjust net numbers
in this situation.
You may include as many file names as will fit on the line and
use as many of these statements as you wish. Use "###" as the
file type to select the highest numbered nodelist. Example:
MYLIST ANETLIST.###
PVTLIST POINT1.NET POINT2.NET
ROUTE
NOROUTE
Writes NODELIST.FON, the SEADOG routing work file. Rumor has it
that this file is sometimes used by non-Seadog sysops, so it can
be produced even if you are not in Seadog mode. Default is
NOROUTE. See the PURSUIT section for information about how
PC Pursuit processing modifies the contents of this file.
IGATE [<zone>:[<net>/]]node
OGATE [<zone>:[<net>/]]<node>
GATE [<zone>:[<net>/]]<node>
HUB [<zone>:[<net>/]]<node>
The specified nodes will be marked in the NODELIST.FON files. In
SeaDog mode, they will also be marked in the NODELIST.BBS file.
Network host nodes are always marked as IGATE nodes and Network
hub modes are always marked as HUB nodes. You need to enter
these statments only for nodes that are not marked automatically.
These commands may be repeated.
XLAXNODE Page 9
XLAXNODE Page 10
PHONE [<zone>:[<net>/]]<node> <phonenumber>
Allows you to override a node's phone number. If net is omitted,
your net will be assumed. This statement can be repeated as
required. Entering a phone number for a private node will cancel
the node's private status and host routing. Example:
PHONE 135/990 1-305-555-1212
You should enter the phone number in exactly the same format as
the numbers in the nodelist (and the example above). Use the
DIAL translation to make any required alterations to the phone
number.
FLAG [<zone>:[<net>/]]<node> <+/=><flagstring>
Allows you to replace or append to a node's flags. If net is
omitted, your net will be assumed. A equal sign replaces a nodes
flags, a plus appends to them. You should enter the flags in
exactly the same format as the nodelist. This statement can be
repeated as required. Examples:
FLAG 135/990 +#CM: ; adds #CM: flag to existing flags
FLAG 135/990 =#CM: ; replaces flags with #CM:
BAUD [<zone>:[<net>/]]<node> <speed>
Allows you to override a node's baud rate. If zone or net is
omitted, your own will be assumed. This statement can be
repeated as required. Example:
BAUD 135/990 56000 ; Can't you just wait for this modem?
PASSWORD [<zone>:[<net>/]]<node> password
Allows you to enter a password into the Nodelist. They make no
sense unless the OPUSLIST switch is set. If OpusNew is in
effect, passwords are truncated to eight characters; if OpusOld
is in effect, they are truncated to six. Like PHONE or BAUD,
this command may be repeated as desired. If you specify a
password for a private node, the program will issue a warning
message and cancel the node's host routing. Example:
PASSWORD 135/1 HotWoc
PASSWORDFILE filename
Provides an alternate method of entering passwords into the
Nodelist. The file is a standard ASCII text file. Each line has
the following format:
Net/Node Password
Example:
135/1 HotWoc
135/2 P42JW9
135/3 PW4ME2
XLAXNODE Page 10
XLAXNODE Page 11
WARTS
NOWARTS
This controls the logic used for Hold and Private nodes. WARTS
duplicates the logic used by XlatList 2.84, OpusNode and NlComp.
NOWARTS uses the host or hub node's Phone, Speed, Cost, Password
and Flags. NOWARTS is the default.
ONEZONE
ALLZONES
Selects your zone or all zones to be included in the output
files. Opus 1.03 and Seadog are prepared to handle multiple
zones. Using the AllZone option in these modes can result in
duplicate node numbers. Do so at your own risk. ONEZONE is the
default.
SORTWORK filename
If a sort cannot be completed in memory, a disk work file will be
created and deleted when no longer needed. SORTWORK controls
where the file will be placed. You may specify a full drive,
path and file name. An Extended or Expanded Memory ramdisk is
an ideal place for this file. If this statement is omitted, the
file will be created in your current directory. The SEADOG,
SINDEX, and USERLIST/INTERLIST options trigger sorts, although
only the user lists are likely to overflow to disk.
BUFFERS <number>
Allows you to increase or decrease the size of the file I/O
buffers used by the program. The default is 4; values of 1 to 8
may be specified. If you specify too large a value, the program
will abort with a Heap Overflow message. For best performance,
use the largest value that will allow the program to run without
any of the sorts giving a message that a disk work file has been
used. Example:
BUFFERS 6
OZONE <zone>:<net> [<newnet>]
Causes a net from another zone to be "imported" into your own
zone. Since net numbers are not unique in different zones, you
may need to specify a new net number. You may repeat this
command as required.
The command affects the Opus 1.03 (Nodelist.BBS, Nodelist.Sys,
and Nodelist.Idx) and Seadog (Nodelist.BBS, Nodelist.Dog,
Netlist.Dog, Index.Dog, and Nodelist.Fon) files.
Example:
OZONE 2:500 ; Sweden will appear as net 500
OZONE 2:501 20501 ; Norway will appear as net 20501
XLAXNODE Page 11
XLAXNODE Page 12
DIAL <domestic> <international>
It's unlikely that you will be able to use the numbers from the
nodelist exactly as they are. If 1-305-555-1212 is a local call,
the phone company is likely to laugh at you if you try to dial
all 10 digits. Numbers in the nodelist need to be "munged" into
a format acceptable to Mother Bell (or Gee Hee Hee). The DIAL
table is a set of rules for that job. It starts with a DIAL
line, contains zero or more detail lines, and finishes up with an
END statement.
Each detail line in the DIAL table consists of a search part and
a replacement part. The search part of each line is matched
against a node's phone number. As soon as a match is found, the
part matched is replaced, and processing continues with the next
phone number. Assume the following line in the DIAL table:
1-305-555 555 ; Search for "1-305-555" replace with "555"
If the phone number is 1-305-555-1212, then the 1-305-555 will be
replaced by 555 and the result is 555-1212. This is the normal
format for a local call. You'll probably want a DIAL line like
this for every local prefix.
Now consider long distance within your own area code. You
probably need to dial 1 and the seven digit number. After
listing all your local prefixes in the DIAL list, make the
following entry:
1-305- 1-
If the 1-305-976 prefix was not individually included in the DIAL
list, then this entry would change 1-305-976-1212 into
1-976-1212.
If you can dial your entire area code without a 1- prefix, then
you don't need to detail the local exchanges. Just specify:
1-305- /
This will strip the 1-305- from every number in the area code.
For most places, this about covers it. For long distance calls
outside your own area code, you dial the number just as it
appears in the nodelist.
Here's an abbreviated version of my DIAL list:
DIAL / 011-/#
1-305-222 222 ; local call
1-305-223 223 ; local call
.
.
.
1-305-939 939 ; local call
1-305 1- ; long distance within 305
END
If you're sharp, you're wondering about the / 011-/# on the DIAL
statement. The entries on the DIAL statement specify what to do
if NONE of the DIAL lines match. For domestic calls, we don't
need to do anything. The first slash just serves as a place
holder so nothing gets done to domestic numbers. For
international calls we need to insert 011- in front of the
number. Inserting # at the end of international numbers speeds
completion of the call.
XLAXNODE Page 12
XLAXNODE Page 13
If you're connected to a switchboard that needs 9 before all
local calls, and 8 before all long distance calls, then your
table might look like this:
DIAL 8 8-011
1-305-222 9-222 ; local call
1-305-223 9-223 ; local call
.
.
.
1-305-939 9-939 ; local call
1-305- 8-1- ; long distance within 305
END
Suppose that you want to use a dial-up long distance carrier for
those places not listed in your dial list. The following DIAL
statement would do the job:
DIAL 950-1234W9876* 011-
This is saying, if a domestic phone number does not match
anything in the DIAL list, then insert 950-1234W9876* before the
number. International numbers would still get a 011- prefix.
Until now, I've ignored a feature that will not be used by many
people. In addition to inserting things before the phone number,
you can append things to the end of phone number. That's where
the slash comes into play. If your long distance company wanted
the security code AFTER the number, the DIAL statement would look
like this:
DIAL 950-1234W/*9876 -011
This says to insert 950-1234W in front of the number and *9876
after the number. When I called the slash a place holder
earlier, it was saying to insert nothing before and nothing after
the number.
You can use the slash in a DIAL detail line as well. If you
wanted to use the dial up service within my your area code, then
the line in your DIAL table would look like this:
1-305- 950-1234W/*9876
This would turn 1-305-976-1212 into 950-1234W976-1212*9876.
NOTE!
There is a difference in the way that XLATLIST and I handle dial
entries. XLATLIST searches them in the order entered, so if you
had entered:
1-305 1-
1-305-555 555
XLATLIST would NEVER use the second line. I sort them and always
search the longest ones first, so I WOULD find and use the second
line. If you enter strings in a sequence that will result in
output different from XLATLIST, a warning message will be
generated.
XLAXNODE Page 13
XLAXNODE Page 14
As far as the program is concerned, domestic is any number that
has the prefix specified in the COUNTRY statement (defaulting to
1-). Canada, Bermuda, parts of Mexico and the Caribbean Islands
are dialed as domestic calls. You may have 1+ long distance
service from a company that do not handle all these places. If
you are using one of these companies, you will need something
like:
1-416 10288-1-416
to send these calls via AT&T.
A little hint: The discount periods for foreign places are not
the same as for the US. From the US to Canada, lowest rates are
midnight to 8 am, seven days a week. Weekend daytime is NOT the
lowest rate.
COST <domestic> <international> [<special>]
The COST table assigns prices to be charged for Network (Matrix)
mail. It is structured a lot like the DIAL table. It begins
with a COST statement, has one or more detail lines, and finishes
with an END statement.
The COST statement itself accepts three values, the price (in
pennies) of domestic, international and special nodes. These
prices are defaults for any number that is not listed in the
detail section. Special nodes are private nodes that you have
assigned a password. They cannot be host routed, and there is no
phone number available, so this cost will be used. If omitted,
it defaults to the domestic value.
Lines in the detail section start like lines in the DIAL list,
with a partial phone number to search for. Each search string is
followed by a cost, and an optional baud rate. The baud rate
becomes an upper limit for calls to the numbers specified.
Rather than continue with rules, an example should make it clear.
COST 35 125
1-305-222 222 0 ; local call
1-305-223 223 0 ; local call
.
.
.
1-305-939 939 0 ; local call
1-305 25 ; my own area code.
1-813 25 ; other places in Fla.
1-904 25 ; rest of Fla.
1-809-422 50 1200 ; Nassau
1-809-423 50 1200 ; Nassau
1-809 75 ; Bermuda, Bahamas, Etc.
1-905 90 ; Mexico
1-416 50 ; Ontario Canada
1-514 50 ; Quebec Canada
.
.
.
1-800 0 ; Free Call
END
XLAXNODE Page 14
XLAXNODE Page 15
This first few lines make local E-Mail free. Calls to the rest
of Florida are 25 cents. Calls to Nassau are fifty cents, and no
matter what the speed in the nodelist, I want to call at no more
than 1200 baud. The rest of area 809 is 75 cents. Calls to
Mexico are 90 cents, etc. Any place not mentioned in the list
will be 35 cents if it starts with the 1- prefix, and $1.25
otherwise.
PURSUIT <filename> <cost> <baud>
NOPURSUIT
This command enables special processing for Opus sysops with PC
Pursuit. Before I start with the details of Pursuit processing,
I want to make a comment about the cost field. The default is
one cent. Opus considers any node with a zero cost to be a local
call. If you have your behavior windows set up to allow local
calls during the day, then Opus will place daytime Pursuit calls
and you'll be billed $10 - $14/hr. By setting the cost of a
Pursuit message to a penny, Opus will not consider it a local
call and avoid the high-rent periods.
Baud is the maximum speed to be used for PC Pursuit. You should
set it to 2400 (the default) unless you do not have a 2400 baud
in-dial to Telenet. For any given node, the program will use the
lowest of the node's baud rate, Telenet's outdial rate (from the
data file described below) for the node's city, the rate
specified here and MAXBAUD. Even if it's not clear, it works
perfectly.
Filename refers to a file listing the area codes and numbers that
can be dialed by PC Pursuit. These numbers receive special
treatment during DIAL processing. For these discussions, I'll
assume that you have specified:
PURSUIT PCP
If you use a different filename, then you'll have to make the
necessary adjustments.
If you are running Opus 1.03, you will need PCP.INP, a skeleton
script file used to create scripts for reaching each Pursuit
node. If you are running Binkley or Opus 1.10, you will need
PCP.SCR, which is not used by this program, but will be used by
Opus when you place a call to one of these nodes. The sample
script files included with XlaxNode are just that, samples. Do
not expect them to work in your environment without modification.
You'll need a file called PCP.DAT containing a list of area codes
and exchanges that can be reached via PC Pursuit. A sample
PCP.DAT is included, but Telenet is actively adding new cities.
The basic skeleton of the PCP.DAT file can be downloaded from the
Pursuit bulletin board. Each line begins with an area code,
starting in column one, followed by a list of exchanges within
that area code. Exchanges need not be in sequential order. For
example:
305 223 226 227 232 233 235 238 250 251 252
XLAXNODE Page 15
XLAXNODE Page 16
This information should already be in the file when you download
it. Insert a header line in front of each city. It's a standard
Ascii text file, so use your favorite text editor. The header
line consists of the word "NODE" in column one, a space and the
name assigned to the outdial city by Telenet, another space and
the maximum outdial baud for that city.
NODE D/DCWAS 2400
The Washington outdial node handles calls for area 202 and parts
of 301 and 703. You should list all three area codes under a
single header:
NODE D/DCWAS 2400
202 xxx xxx xxx xxx xxx xxx
202 xxx xxx xxx xxx xxx xxx
301 xxx xxx xxx xxx xxx xxx
301 xxx xxx xxx xxx xxx xxx
703 xxx xxx xxx xxx xxx xxx
703 xxx xxx xxx xxx xxx xxx
The New York outdial node serves 212 and 718, but you must dial
1-718 before calls to the latter. In this case you have a PREFIX
statement:
NODE D/NYNYO 2400
212 xxx xxx xxx xxx
212 xxx xxx xxx xxx
PREFIX 1-718-
718 xxx xxx xxx xxx
718 xxx xxx xxx xxx
The sample file included should make this clear.
Any line that does not start with an area code or the words NODE
or PREFIX will be treated as a comment line. The sample file
uses semi-colons, but almost anything could have been used.
The PCP.INP file is an Opus dialer script with two modifications.
Special markers indicate where the outdial node and the special
area-code prefix must be dialed. When the script is customized,
the outdial node from the NODE statement will be inserted. If
there is an area-code prefix, then it will be inserted as well.
The two spots where these prefixes are to be inserted are
indicated by statements starting in column one:
<<<NODE>>>
<<<PREFIX>>>
XLAXNODE Page 16
XLAXNODE Page 17
The <<<NODE>>> statement causes the program to insert a line
like:
XMIT NYNYO
into the output script. The <<<PREFIX>>> statement causes a line
like:
XMIT 1-718-
to be generated if needed. If not, it will be suppressed.
The specialized scripts will have file names PCP.1, PCP.2, etc.
DIAL processing is very generalized, and works on the basis of
string matches. In order to work with international phone
numbers, it makes no assumptions about their format or
punctuation. PURSUIT processing does a rigorous edit of the
number. It must look like "1-NNN-NNN-NNNN"; exactly fourteen
characters long, start with a "1" and have three hyphens where
indicated. The other characters must all be numbers, and the
middle digit of the area code must be a zero or a one.
How does PC Pursuit Processing interact with DIAL processing? An
area code/prefix that you fully specify in the DIAL list will
take priority over the Pursuit entry. An DIAL entry consisting
of a shorter string will NOT take priority over the Pursuit
entry.
What if you live in a Pursuitable city? You don't want to use
Pursuit to make local calls. Assume both prefixes are listed in
PCP.DAT, but 305-555 is local and 305-976 is long distance. You
probably have the following DIAL lines:
1-305-555 555
1-305 1
The DIAL entry that matches 555 is nine characters long, so it
would be used, and the call would not be placed with Pursuit.
The DIAL entry that matches the 976 number is less than nine
characters long, so the Pursuit processing takes priority.
If you don't have DIAL entries for your local prefixes, then you
will need to disable your own city in the PCP.DAT file. Just
change the baud rate in the NODE statement to zero to disable a
city.
Suppose you want to bypass Pursuit and use your Super-56000 baud
modem for a specific number? Put the following entry in your
DIAL list:
1-212-555-1212 1-212-555-1212
Since the number is matched by a string of nine or more
characters, Pursuit processing is bypassed.
XLAXNODE Page 17
XLAXNODE Page 18
Pursuitable nodes will be marked by inserting a ">" character in
front of the node's name. This symbol will be displayed by any
program that uses the nodelist files to obtain a nodename. In
addition, the human readable lists (NODETEXT.BBS, NODELIST.PRN,
.TXT, .DBL, NODETEXT.BBS and COORD.nnn) will have the PCP node
name inserted in front of the node's city. The NODELIST.FON file
will have the word "PCPURSUIT" added to the flags field.
NB: The PCP.INP and PCP.SCR files included are examples. They
probably worked on someone's system, somewhere, sometime. I
don't pretend they will run on your system today. Pursuit seems
sensitive to brands of modems, what city you are calling from,
what city your are calling to, the day of the week and the phase
of the moon. I don't use Pursuit and I can't debug any scripts.
PCPLIST
NOPCPLIST
PCPLIST causes a file named PCP.PCP to be written. This file is
a compressed version of the data contained in PCP.DAT file. The
program PCP, supplied with XlaxNode, uses this file. NOPCPLIST
is the default, and the file is suppressed.
XLAXNODE Page 18
XLAXNODE Page 19
DELIMITED FILE
The delimited file is a version of the nodelist formatted to easily
import into dBase, Lotus, Reflex or (gag) a BASIC program. Each node
is a single line, consisting of a list of fields separated by commas.
Strings are enclosed in quotes.
A sample database definition for dBase-III, NODELIST.DBF, is included.
The commands USE NODELIST and APPEND NODELIST.DLM DELIMITED will load
this database. You may wish use the MODIFY STRUCTURE command to
shorten some of the field lengths before loading. For Lotus, use the
command "File Import Numbers". Allow a LONG time and a LOT of memory.
If you rename the file to type "PRN", the Reflex2 Translate command
will accept this file as type "TEXT". All you need to do is supply
field names.
The fields, in order, are:
Keyword: Will contain one of the following: "ZONE", "REGION",
"HOST", "HUB", "PVT", "HOLD" or "". "" is a normal node.
Down nodes are not included in the file.
Zone: an integer.
Region: an integer.
Net: an integer.
Node: an integer.
Node Name: a quoted string.
Sysop's Name: a quoted string.
City: a quoted string.
Node Phone: phone number as it appears in the nodelist, a quoted
string. Private nodes will have "-Unpublished-" in this
field.
For Hold or Private nodes, the remaining fields refer to the host's
(hub, net, region, zone) information. For normal nodes, they contain
the node's own information.
Dial Phone: phone number after dial translation, a quoted string.
Baud: an integer.
Pursuit City: if Pursuit processing enabled and node is dialable
via Pursuit, the outdial city, in quotes. Otherwise "".
CM: continuous mail indicator, the letter T or F, not quoted.
Flags: a quoted string.
This example has been wrapped to fit the format of the document. In
XLAXNODE Page 19
XLAXNODE Page 20
the file, it occupies a single line.
"ZONE",1,1,0,"Intl FidoNet Coord","David Dodell","Scottsdale AZ",
"1-602-235-9653","1-602-235-9653",1200,"AZPHO",T,"XP:,#CM:"
CAPACITY
XlaxNode has no limit on the size of the nodelist that it can process.
Its use of memory is quite dynamic, and it's hard to say how much
memory is required. I've handled substantial control files (including
full PC Pursuit processing) in 256k. The options that invoke the sort
(SEADOG, INTERLIST, USERLIST and SINDEX), will add to the time and
memory requirements. All sorts attempt to process the entire file in
memory, but will overflow to disk if required.
DIAL, COST, PASSWORD, BAUD, PHONE, HUB, and xGATE information are
contained in arrays. One DIAL or COST element is used for each
translation line in the control file. One BAUD, PASSWORD, or PHONE
element is used for each net/node line in the control file. HUB and
all xGATE entries share an array, using one element for each net/node
in the control file.
After the control file is scanned, the program will report how large
these arrays are and how many entries were used. It will also report
the size of the heap and how much of it was used. Since the sort will
use all the remaining heap, the report is done before the sort's
allocation.
If you need to change the size of these arrays, you can create a text
file named XLAXNODE.CFG. This file can be in the current directory or
any of the directories in the DOS PATH. The format is simple. Each
line consists of one of the words: BAUD, COST, DIAL, GATE, PASSWORD,
FLAG, PHONE or PURSUIT, followed by an equal sign and an integer that
specifies the size of the array. No comments, spaces, blank lines,
etc. are allowed. For example:
COST=200
DIAL=100
PASSWORD=175
XLAXNODE Page 20
XLAXNODE Page 21
BUGS, PROBLEMS, COMPLAINTS, SUGGESTIONS and COMPLEMENTS
Hopefully there will not be a lot of the first three. If you need
help, do ALL of the following:
If running any kind of network, multitasker, or TSR, try the
problem in a stand alone environment. The prime rule is "If I
can't reproduce the problem I can't fix it."
If you are running any kind of odd hardware or old operating
system (MS-DOS version 2.1), try to get a friend to run it on a
more common configuration.
If you are having trouble with Pursuit scripts, you are on your
own. I don't use Pursuit, and have no way to debug a script.
The scripts provided are examples and I don't pretend they will
run on your system.
Send a netmail message, addressed to Scott Samet at 1:135/990. I
have no way to reply to OtherNet addresses, so make sure your
message originates from a FidoNet node.
Indicate the version number of XlaxNode you are running.
Include the type of machine (IBM PS/50, Homemade AT clone), the
name (MS-DOS, PC-DOS) and version number of your operating
system.
Indicate the total memory size and the amount of available memory
displayed by ChkDsk or Mapmem. I may have to restrict my memory
to recreate the problem.
Indicate any options you are using on the XlaxNode command line.
If none, say none, so I don't have to guess.
Create an archive that contains a copy of your control file
(don't forget included files), your XlaxNode.Cfg file, if any,
any private nodelists, plus any other information you think may
be germane to the error.
Copy down the EXACT text of any error message, or better yet,
redirect the output to a file and include it in the archive:
XlaxNode > Error.Rpt
Create an archive that contains a copy of your XlaxNode.Cfg file
(if any), control file (don't forget included files), any private
nodelists, plus any other information you think may be germane to
the error. Make YOUR node number part of the archive name so I
don't have to figure out where XlaxNode.Ctl came from.
XLAXNODE Page 21
XLAXNODE Page 22
COMMAND SUMMARY and INDEX
ADDR ........................................... 6
ADDRLIST filename .............................. 6
ALLZONES ...................................... 11
BAUD [<zone>:[<net>/]]<node> <speed> .......... 10
BUFFERS <number> .............................. 11
COMMENTS ....................................... 7
COORDLIST ...................................... 7
COST <domestic> <international> [<special>] ... 14
COUNTRY ........................................ 4
DASH ........................................... 7
DELIMITEDFILE .................................. 8
DIAL <domestic> <international> ............... 12
FIDO ........................................... 5
FIDODBL ........................................ 5
FIDOPRN ........................................ 5
FIDOTXT ........................................ 5
FLAG [<zone>:[<net>/]]<node> <+/=><flagstring> 10
FRONTDOOR ...................................... 8
GATE [<zone>:[<net>/]]<node> .................. 9
HUB [<zone>:[<net>/]]<node> .................. 9
IGATE [<zone>:[<net>/]]node .................... 9
INCLUDE filename ............................... 4
INDEX .......................................... 5
INTERLIST ...................................... 6
MAXBAUD nnnn [flag mmmm] ....................... 8
MYLIST <filename>... .......................... 9
NOCOMMENTS ..................................... 7
NOCOORDLIST .................................... 7
NODASH ......................................... 7
NODE <zone>:<net>/<node> ....................... 4
NODELIMITEDFILE ................................ 8
NODELIST ....................................... 7
NODETEXT [<headerfilename> [<trailerfilename>]] 6
NOFIDOLIST ..................................... 5
NOFRONTDOOR .................................... 8
NOINDEX ........................................ 5
NONODELIST ..................................... 7
NONODETEXT ..................................... 6
NOOPUSLIST ..................................... 7
NOPROGRESS ..................................... 6
NOREPORT ....................................... 6
NOROUTE ........................................ 9
NOSEADOGLIST ................................... 7
NOSQUEEZE ...................................... 5
NOUSERLIST ..................................... 6
NOWARTS ....................................... 11
OGATE [<zone>:[<net>/]]<node> .................. 9
ONEZONE ....................................... 11
OPUS ........................................... 5
OPUSLIST ....................................... 7
OPUSNEW ........................................ 7
OPUSOLD ........................................ 7
OZONE <zone>:<net> [<newnet>] ................ 11
PASSWORD [<zone>:[<net>/]]<node> password ..... 10
XLAXNODE Page 22
XLAXNODE Page 23
PASSWORDFILE filename ......................... 10
PCPLIST ....................................... 18
PHONE [<zone>:[<net>/]]<node> <phonenumber> ... 10
PROGRESS ....................................... 6
PUBLIST nodelistname .......................... 8
PURSUIT <filename> <cost> <baud> .............. 15
PVTLIST <filename>... .......................... 9
REPORT ......................................... 6
ROUTE .......................................... 9
SEADOG ......................................... 5
SEADOGLIST ..................................... 7
SINDEX ......................................... 5
SORTWORK filename ............................. 11
SQUEEZE ........................................ 5
UPDATE command-string .......................... 4
USERLIST ....................................... 6
WARTS ......................................... 11
BUGS, PROBLEMS, COMPLAINTS, SUGGESTIONS and
COMPLEMENTS ................................... 21
Warranty ....................................... 2
License ........................................ 1
Acknowledgements ............................... 1
XLAXNODE Page 23